IF exists(SELECT * FROM dbo.sysobjects WHERE name='WEB_geefAfwezigeLeraars' AND xtype='P') 
BEGIN
	DROP PROCEDURE WEB_geefAfwezigeLeraars
END
GO

CREATE      procedure WEB_geefAfwezigeLeraars(
@min integer)
as
set nocount on

-- Een tijdelijke tabel, die de XML-gegevens zal bevatten in de eerste rij, eerste kolom (T-SQL kan nl. geen text exporteren).
create table #werk  (tekst text null)
insert into #werk 
values ('')

-- Een pointer naar de XML-tekst:
declare @@ptrval varbinary(16)
select @@ptrval = textptr(tekst) from #werk

----------------------------------------------------------------------------
--             Header
----------------------------------------------------------------------------

updatetext #werk.tekst @@ptrval null 0 '<?xml version="1.0" encoding="ISO-8859-1" ?>'
set nocount on

----------------------------------------------------------------------------
--             Tekst
----------------------------------------------------------------------------
declare @datum dateTime

declare @dag varchar(100)
declare @dagdeel varchar(100)
declare @reden varchar(100)
declare @minus varchar(100)
declare @naam varchar(120)
declare @opmerking varchar(3000)

set @datum = dateAdd(d,@min,getDate())

declare deCursor cursor local for 
   select l.voornaam + ' ' + l.achternaam,
	a.dagdeel,a.reden, a.datum, a.opmerking  
   from leraars.dbo.afwezigheden as a
 	left join leraars.dbo.leraars as l
	on l.naamcode = a.naamcode
   where datePart(dy,datum) = datepart(dy,@datum)
	and datepart(yy,datum) = datepart(yy,@datum)
   order by l.naam1,a.dagdeel DESC
for read only

set @dag = '<dag>' + convert(varchar,@datum,103)  + '</dag>'
set @minus = '<minus>' + convert(varchar(10),@min)  + '</minus>'

updatetext #werk.tekst @@ptrval null 0 '<afwezigen>'
updatetext #werk.tekst @@ptrval null 0 @dag
updatetext #werk.tekst @@ptrval null 0 @minus
updatetext #werk.tekst @@ptrval null 0 '<leraars>'
     
open deCursor
fetch next from deCursor into @naam, @dagdeel, @reden, @datum,@opmerking
while (@@fetch_status=0)
  begin
    set @reden = case 
	when @reden = 'z' then 'Afwezig wegens ziekte'
	when @reden = 'b' then 'Bevallingsrust'
     	when @reden = 'o' then 'Omstandigheidsverlof'
     	when @reden = 's' then 'Sociaal verlof'
        when @reden = 'e' then 'Extra verlof'
        when @reden = 'n' then 'Nascholing'
	else '(Tot nu) onbekend'
    end

    set @dagdeel = case 
	when @dagdeel = 'v' then 'Voormiddag'
     	when @dagdeel = 'n' then 'Namiddag'
	when @dagdeel = 'g' then 'Ganse dag'
	else '(Tot nu) onbekend'
    end

    set @naam = '<naam>' + isNull(@naam,'') + '</naam>'
    set @reden = '<reden>' + isNull(@reden,'') + '</reden>'
    set @dagdeel = '<dagdeel>' + isNull(@dagdeel,'') + '</dagdeel>'
    set @opmerking = '<opmerking>' + isNull(@opmerking,'') + '</opmerking>'

    updatetext #werk.tekst @@ptrval null 0 '<leraar>'
    updatetext #werk.tekst @@ptrval null 0 @naam
    updatetext #werk.tekst @@ptrval null 0 @reden
    updatetext #werk.tekst @@ptrval null 0 @dagdeel
    updatetext #werk.tekst @@ptrval null 0 @opmerking
    updatetext #werk.tekst @@ptrval null 0 '</leraar>'
    fetch next from deCursor into @naam,  @dagdeel, @reden, @datum, @opmerking
  end
updatetext #werk.tekst @@ptrval null 0 '</leraars>'
updatetext #werk.tekst @@ptrval null 0 '</afwezigen>'

select * from #werk
return